#ifndef FISHEYERECOVERLUT_H_
#define FISHEYERECOVERLUT_H_

#include <stddef.h>

typedef struct {
  int x;
  int y;
} PixelCoordinates;

class FishEyeRestorerFunctionLUT {
private:
  typedef struct {
    PixelCoordinates point;
    bool valid;
  } LUT_element;

  LUT_element **function_LUT;
  int LUT_dim_i;
  int LUT_dim_j;

public:
  FishEyeRestorerFunctionLUT(float fisheye_len_field_of_view,
      int fisheye_len_image_width,
      int fisheye_len_image_height,
      int restored_image_width,
      int restored_image_height);

  PixelCoordinates *AccessLut(int i, int j);
};

#endif
